A content delivery network or a Content Distribution Network (CDN) is a system of servers that are deployed over a Wide Area Network (WAN), such as the Internet. The servers store content duplicated from a main storage keeping an original copy of the content. The servers, aka caches, serve the content to end-users based on proximity. CDNs help in delivering content, such as files, images, documents, JavaScript and the like, to the end-users at very high speeds. In CDNs, multiple copies of the content are stored on strategically dispersed caches, e.g. in terms of geography. The geographically closer a cache is to an end-user, the faster the content is delivered to that end-user, aka client.
A known CDN includes a central function for managing the content throughout the CDN. The CDN further includes a plurality of caches for providing content to clients, which may receive the content. The caches may include network connected storage devices, local servers in the proximity of the clients, radio base stations, core network nodes and the like. The central function may manage the caches as passive or active caches.
Passive caching refers to when the central function feeds content to the caches when a client has requested content from the main storage.
Active caching refers to when the central function feeds content to the caches proactively and opportunistically before a client has requested content. Hence, the central function guesses based on historical requests for content when the client will request some specific content. The specific content then will be stored at a cache in close proximity to that client.
In order for the known central function to be able to perform passive as well as active caching, the known central function receives reports from the caches. A report, from a first cache, includes for example information about available transport capabilities including bandwidth, delay variation, etc. towards clients in the proximity of the first closest cache. Based on the information about available transport capabilities, e.g. bandwidth, from the central function to the clients, the central function is able to determine at which cache content should be stored to provide efficient content delivery when possibly requested by the client in the future—in case of active caching—, or after request by the client—in case of passive caching.
A problem in this context is that the caching performed by the central function may not be sufficiently flexible in order to be able to adapt to different scenarios. In order to improve flexibility, it has been proposed to allow the central function to select parameters from a set of predetermined parameters. The selected parameters are to be reported by the caches to the central function. In this manner, the central function would be able to use one model of out a set of predetermined models for how to determine which cache to feed the content to depending on which parameters have been configured to be reported. However, alternative manners of providing flexibility may be required to further improve management of caches and content.
In an exemplifying application, the known CDN is used to deliver streaming video, from a live-source in real-time or from a library of video sequences, such as films, movies, etc. The content—a film for instance—consists of a set of segments, one or several segments can be packaged into a transport protocol and to each such data packet one or several metadata headers can be appended, for instance using HTTP transfer protocol. The meta data allows for adding descriptions of the data—the segments- and is used to enable more efficient processing decisions in intermediate caches and also that the content, the segments, are encapsulated in a secure capsule, for instance for confidentiality or integrity reasons. Each segment is typically given a unique address, enabling the entities involved to decide on storage, push and retrieval on individual segments.
Known technologies for providing video streaming include Moving Picture Experts Group (MPEG)—Dynamic Adaptive Streaming over Hypertext Transfer Protocol (DASH), Hypertext Transfer Protocol (HTTP) Live Streaming (HLS) from Apple, Smooth Streaming from Microsoft, Dynamic Streaming from Adobe and the like. In view of the above know technologies, a problem is how to find alternative solutions for managing caches and content in a more efficient and/or flexible manner.